package com.cmc.cloud.cmclink.doc.vo.voyagebsapodvo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;

import org.hibernate.validator.constraints.Length;

import java.math.BigDecimal;
import javax.validation.constraints.*;

/**
 * 目的港舱位分配 Base VO，提供给添加、修改、详细的子 VO 使用
 * 如果子 VO 存在差异的字段，请不要添加到这里，影响 Swagger 文档生成
 *
 * @author codegen
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class VoyageBsaPodBaseVO {

    @Schema(description = "舱位主信息id", requiredMode = Schema.RequiredMode.REQUIRED, example = "26983")
    @NotNull(message = "{VoyageBsaPodBaseVO.voyageBsaId.NotNull}")
    private Long voyageBsaId;

    @Schema(description = "目的港", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotBlank(message = "{VoyageBsaPodBaseVO.podCodes.NotBlank}")
    @Length(max = 50, message = "{VoyageBsaPodBaseVO.podCodes.Length}")
    private String podCodes;

    @Schema(description = "bsa箱量teu", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "{VoyageBsaPodBaseVO.bsaTeu.NotNull}")
    private Integer bsaTeu;

    @Schema(description = "bsa重量吨", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "{VoyageBsaPodBaseVO.bsaTons.NotNull}")
    private Integer bsaTons;

    @Schema(description = "冷插数", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "{VoyageBsaPodBaseVO.rfUnit.NotNull}")
    private Integer rfUnit;

    @Schema(description = "HC(teu)")
    private Integer hcTeu;

    @Schema(description = "危险品占比teu")
    private BigDecimal maxDgPercent;

    @Schema(description = "危险品定额teu")
    private Integer maxDgTeu;

    @Schema(description = "备注")
    @Length(max = 255, message = "{VoyageBsaPodBaseVO.remark.Length}")
    private String remark;

}
